package com.zhy.algorithm;

/**
 * @author 随缘而愈
 * @version 1.0
 * @description 选择排序
 * @date 22/3/2024 下午7:10
 */

public class SelectionSort {

    void sort(int arr[]) {
        int n = arr.length;

        // 遍历所有数组元素
        for (int i = 0; i < n - 1; i++) {
            // 找到最小元素的索引
            int min_idx = i;
            for (int j = i + 1; j < n; j++)
                if (arr[j] < arr[min_idx])
                    min_idx = j;

            // 将找到的最小元素与第一个元素交换
            int temp = arr[min_idx];
            arr[min_idx] = arr[i];
            arr[i] = temp;
        }
    }

    /* 一个简单的函数来打印数组 */
    static void printArray(int arr[]) {
        int n = arr.length;
        for (int i = 0; i < n; ++i)
            System.out.print(arr[i] + " ");
        System.out.println();
    }

    // 测试上述代码
    public static void main(String args[]) {
        int arr[] = {64, 25, 12, 22, 11};
        SelectionSort ob = new SelectionSort();
        ob.sort(arr);
        printArray(arr);
    }
}
